iT邦幫忙

2023 iThome 鐵人賽

DAY 20
0
自我挑戰組

Practice again& again.系列 第 20

Android - 建立 Activity 的方式

  • 分享至 

  • xImage
  •  

其他相關章節:

使用工具列建立Activity

情境一:使用 Compose UI 開發

  1. 右鍵點選 app/java 資料夾 → 「New」 → 「Compose」 → 「Empty Compose Activity」
    01

  2. 出現 「New Android Activity」彈出視窗(說明文字為「Create a new empty activity with Jetpack Compose」),
    於欄位「Activity Name」輸入名稱,並確認「Package name」欄位的資料夾位置正確後,點選「Finish」,完成建立 Activity
    02

情境二:使用 Layout XML

  1. 右鍵點選 app/java 資料夾 → 「New」 → 「Activity」 → 「Empty Activity」
    03

  2. 出現 「New Android Activity」 彈出視窗,於欄位「Activity Name」輸入名稱的同時,「Layout Name」的名稱會自動同步更新;確認「Package name」欄位的資料夾位置正確後,點選「Finish」,完成建立 Activity
    04


自行建立 Activity

上述使用工具列新增 Activity 是幫助開發者快速建立相關檔案,若要自行建立 Activity,也可以手動新增檔案

  1. 右鍵點選 app/java 資料夾 → 「New」 → 「Kotlin Class/File」
    01

  2. 出現「New Kotlin Class/File」彈出視窗 → 輸入 Activity 名稱並選擇「Class」→ Enter 鍵 → 完成建立 Activity
    02

  3. 開啟 app/manifest/AndroidManifest.xml 檔案,觀察 <application> 的子元素為 <activity>,在宣告 MainActivity 元素結尾後方,新增剛剛建立完成的 Activity 基本資訊

    <application
        ...
        <activity
            android:name=".MainActivity"
            android:exported="true">
            ...
        </activity>
        <!--========新增 Activity ========-->
        <activity
            android:name=".LoginActivity"
            android:exported="false" />
        <!--==============================-->
    </application>
    
  4. 建立 Activity 的 Layout XML(若使用 Compose UI 開發則可忽略此步驟):
    右鍵點選 res/layout 資料夾 → 「New」→ 「Layout Resource File」

    07

    出現「New Resource File」彈出視窗,於「File name」欄位輸入 activity_名稱(例如此處範例為 activity_login),點選「OK」即新增完成

    08

    再回到剛剛建立完成的 LoginActivity,貼上下方程式碼:

    class LoginActivity : AppCompatActivity() {
         override fun onCreate(savedInstanceState: Bundle?) {
             super.onCreate(savedInstanceState)
             setContentView(R.layout.activity_login)
         }
     }
    

上一篇
Android - Theme Resources
下一篇
Android - 使用 Fragment (for Layout XML)
系列文
Practice again& again.30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言